package fr.iut2.tc1.premierprogramme.client;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class FileFactory {

	// Prend en parametre le chemin vers un repertoire
	// Retourne la liste des chemins des fichiers contenus dans ce repertoire
	public static ArrayList<String> getFilesNames(String path) {

		ArrayList<String> lisFilesNames = new ArrayList<String>();
		File repertoire = new File(path);

		if (repertoire.isDirectory()) {
			File[] list = repertoire.listFiles();
			if (list != null) {
				for (int i = 0; i < list.length; i++) {
					lisFilesNames.add(list[i].getName());
				}
			} else {
				System.err.println(repertoire + " : Erreur de lecture.");
			}

		}
		return lisFilesNames;
	}

	// Prend en parametre le chemin vers un fichier texte
	// Retourne le texte de ce fichier
	public static String getText(String filePath) throws FileNotFoundException {

		String text = "";
		File fichier = new File(filePath);

		Scanner scanner = new Scanner(fichier);
		while (scanner.hasNextLine()) {
			text = text + scanner.nextLine() + "\n";
		}
		scanner.close();

		return text;
	}

	// Prend en paramétre le chemin vers un fichier texte et le texte à ajouter
	public static void setText(String filePath, String line) {

		File fichier = new File(filePath);
		FileWriter writer = null;
		BufferedWriter bufferWriter = null;
		
		try {
			fichier.createNewFile();
			writer = new FileWriter(fichier);
			bufferWriter = new BufferedWriter(writer);
			bufferWriter.write(line.trim());
			bufferWriter.close();
			
		} catch (IOException ex) {
			ex.printStackTrace();
		}
	}
}